"""
迭代器:list、tuple、dict、set、str、generator 都可以使用for循环，称为可迭代对象。区别是generator可以使用next()函数获取下一个值，但是list、tuple、dict、set、str不可以.
可以被next()函数调用并不断返回下一个值的对象称为迭代器:iterator
iter()函数可以把list,tuple,dict,set,str等等对象变成迭代器
"""
# 以下代码是等价的，for in的本质是把可迭代对象变成迭代器，然后不断调用next()函数获取下一个值，直到没有值为止
for x in [1, 2, 3, 4, 5]:
    print(x)

it = iter([1, 2, 3, 4, 5])
while True:
    try:
        print(next(it))
    except StopIteration:
        break

for x in [1, 2, 3, 4, 5]:
    print(x)